export default function debounce(fn, defaultAwait = 500) {
  let timeId;
  return function(...args) {
    return new Promise((resolce) => {
      if (timeId) {
        clearTimeout(timeId)
      }
      timeId = setTimeout(() => {
        resolce(fn(...args))
        clearTimeout(timeId)
      }, defaultAwait);
    })
  }
}